home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / OWLINC.PAK / OCFEVENT.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  19KB  |  578 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1994, 1997 by Borland International, All Rights Reserved
  4. //
  5. //$Revision:   10.9  $
  6. //
  7. // Definition of OWL signatures for ObjectComponents messages
  8. //----------------------------------------------------------------------------
  9. #if !defined(OWL_OCFEVENT_H)
  10. #define OWL_OCFEVENT_H
  11.  
  12. #if !defined(OWL_EVENTHAN_H)
  13. # include <owl/eventhan.h>
  14. #endif
  15. #if !defined(_OCMCLASS) && defined(BI_PLAT_WIN16)
  16. # define _OCMCLASS _OWLCLASS
  17. #endif
  18. #if !defined(OCF_OCAPP_H)
  19. # include <ocf/ocapp.h>
  20. #endif
  21. #if !defined(OCF_OCVIEW_H)
  22. # include <ocf/ocview.h>
  23. #endif
  24. #if !defined(OCF_OCCTRL_H) && defined(BI_PLAT_WIN32)
  25. # include <ocf/occtrl.h>
  26. #endif
  27.  
  28. #if defined(BI_NAMESPACE)
  29. namespace OWL {
  30. #endif
  31.  
  32. //----------------------------------------------------------------------------
  33. // Signatures for ObjectComponents messages
  34. //
  35.  
  36. template <class T>
  37. inline bool _CALLCNVN (T::*B_OC_MD_Sig(bool _CALLCNVN (T::*pmf)(TOcMenuDescr far&)))(TOcMenuDescr far&)
  38. {
  39.   return pmf;
  40. }
  41.  
  42. template <class T>
  43. inline bool _CALLCNVN (T::*B_OC_DD_Sig(bool _CALLCNVN (T::*pmf)(TOcDragDrop far&)))(TOcDragDrop far&)
  44. {
  45.   return pmf;
  46. }
  47.  
  48. template <class T>
  49. inline bool _CALLCNVN (T::*B_OC_VSCROLL_Sig(bool _CALLCNVN (T::*pmf)(TOcScrollDir)))(TOcScrollDir)
  50. {
  51.   return pmf;
  52. }
  53.  
  54. template <class T>
  55. inline bool _CALLCNVN (T::*B_OC_PCI_Sig(bool _CALLCNVN (T::*pmf)(TOcPartChangeInfo&)))(TOcPartChangeInfo&)
  56. {
  57.   return pmf;
  58. }
  59.  
  60. template <class T>
  61. inline bool _CALLCNVN (T::*B_OC_VP_Sig(bool _CALLCNVN (T::*pmf)(TOcViewPaint far&)))(TOcViewPaint far&)
  62. {
  63.   return pmf;
  64. }
  65.  
  66. template <class T>
  67. inline bool _CALLCNVN (T::*B_OC_VSP_Sig(bool _CALLCNVN (T::*pmf)(TOcSaveLoad far&)))(TOcSaveLoad far&)
  68. {
  69.   return pmf;
  70. }
  71.  
  72. template <class T>
  73. inline bool _CALLCNVN (T::*B_OC_VCF_Sig(bool _CALLCNVN (T::*pmf)(TOcFormatData far&)))(TOcFormatData far&)
  74. {
  75.   return pmf;
  76. }
  77.  
  78. template <class T>
  79. inline bool _CALLCNVN (T::*B_OC_VTB_Sig(bool _CALLCNVN (T::*pmf)(TOcToolBarInfo far&)))(TOcToolBarInfo far&)
  80. {
  81.   return pmf;
  82. }
  83.  
  84. template <class T>
  85. inline bool _CALLCNVN (T::*B_OC_VSS_Sig(bool _CALLCNVN (T::*pmf)(TOcScaleFactor&)))(TOcScaleFactor&)
  86. {
  87.   return pmf;
  88. }
  89.  
  90. template <class T>
  91. inline bool _CALLCNVN (T::*B_OC_PS_Sig(bool _CALLCNVN (T::*pmf)(TOcPartSize far&)))(TOcPartSize far&)
  92. {
  93.   return pmf;
  94. }
  95.  
  96. template <class T>
  97. inline bool _CALLCNVN (T::*B_OC_IT_Sig(bool _CALLCNVN (T::*pmf)(TOcItemName&)))(TOcItemName&)
  98. {
  99.   return pmf;
  100. }
  101.  
  102. template <class T>
  103. inline bool _CALLCNVN (T::*B_OC_SL_Sig(bool _CALLCNVN (T::*pmf)(TOcLinkView&)))(TOcLinkView&)
  104. {
  105.   return pmf;
  106. }
  107.  
  108. template <class T>
  109. inline bool _CALLCNVN (T::*B_OC_PA_Sig(bool _CALLCNVN (T::*pmf)(TOcPart&)))(TOcPart&)
  110. {
  111.   return pmf;
  112. }
  113.  
  114. template <class T>
  115. inline bool _CALLCNVN (T::*B_OC_PO_Sig(bool _CALLCNVN (T::*pmf)(TOcInitInfo&)))(TOcInitInfo&)
  116. {
  117.   return pmf;
  118. }
  119.  
  120. template <class T>
  121. inline bool _CALLCNVN (T::*B_OC_PI32_Sig(bool _CALLCNVN (T::*pmf)(int32 *)))(int32 *)
  122. {
  123.   return pmf;
  124. }
  125.  
  126. template <class T>
  127. inline bool _CALLCNVN (T::*B_OC_PI16_Sig(bool _CALLCNVN (T::*pmf)(int16 *)))(int16 *)
  128. {
  129.   return pmf;
  130. }
  131.  
  132. template <class T>
  133. inline bool _CALLCNVN (T::*B_OC_I16_Sig(bool _CALLCNVN (T::*pmf)(int16)))(int16)
  134. {
  135.   return pmf;
  136. }
  137.  
  138. template <class T>
  139. inline bool _CALLCNVN (T::*B_OC_PB_Sig(bool _CALLCNVN (T::*pmf)(bool *)))(bool *)
  140. {
  141.   return pmf;
  142. }
  143.  
  144. template <class T>
  145. inline bool _CALLCNVN (T::*B_OC_PPTS_Sig(bool _CALLCNVN (T::*pmf)(TString **)))(TString **)
  146. {
  147.   return pmf;
  148. }
  149.  
  150. template <class T>
  151. inline bool _CALLCNVN (T::*B_OC_PPID_Sig(bool _CALLCNVN (T::*pmf)(IDispatch **)))(IDispatch **)
  152. {
  153.   return pmf;
  154. }
  155.  
  156. template <class T>
  157. inline bool _CALLCNVN (T::*B_OC_PTS_Sig(bool _CALLCNVN (T::*pmf)(TString *)))(TString *)
  158. {
  159.   return pmf;
  160. }
  161.  
  162. template <class T>
  163. inline bool _CALLCNVN (T::*B_OC_PID_Sig(bool _CALLCNVN (T::*pmf)(IDispatch *)))(IDispatch *)
  164. {
  165.   return pmf;
  166. }
  167.  
  168. template <class T>
  169. inline bool _CALLCNVN (T::*B_U_Sig(bool _CALLCNVN (T::*pmf)(uint)))(uint)
  170. {
  171.   return pmf;
  172. }
  173.  
  174. // Signature templates used to validate OCX-events handlers
  175. //
  176. #if defined(BI_PLAT_WIN32)
  177.  
  178. template <class T>
  179. inline bool _CALLCNVN (T::*B_OC_PE_Sig(bool _CALLCNVN (T::*pmf)(TCtrlEvent*)))(TCtrlEvent*)
  180. {
  181.   return pmf;
  182. }
  183.  
  184. template <class T>
  185. inline bool _CALLCNVN (T::*B_OC_PME_Sig(bool _CALLCNVN (T::*pmf)(TCtrlMouseEvent*)))(TCtrlMouseEvent*)
  186. {
  187.   return pmf;
  188. }
  189.  
  190. template <class T>
  191. inline bool _CALLCNVN (T::*B_OC_PKE_Sig(bool _CALLCNVN (T::*pmf)(TCtrlKeyEvent*)))(TCtrlKeyEvent*)
  192. {
  193.   return pmf;
  194. }
  195.  
  196. template <class T>
  197. inline bool _CALLCNVN (T::*B_OC_PFE_Sig(bool _CALLCNVN (T::*pmf)(TCtrlFocusEvent*)))(TCtrlFocusEvent*)
  198. {
  199.   return pmf;
  200. }
  201.  
  202. template <class T>
  203. inline bool _CALLCNVN (T::*B_OC_PPE_Sig(bool _CALLCNVN (T::*pmf)(TCtrlPropertyEvent*)))(TCtrlPropertyEvent*)
  204. {
  205.   return pmf;
  206. }
  207.  
  208. template <class T>
  209. inline bool _CALLCNVN (T::*B_OC_PCE_Sig(bool _CALLCNVN (T::*pmf)(TCtrlCustomEvent*)))(TCtrlCustomEvent*)
  210. {
  211.   return pmf;
  212. }
  213.  
  214. template <class T>
  215. inline bool _CALLCNVN (T::*B_OC_PEE_Sig(bool _CALLCNVN (T::*pmf)(TCtrlErrorEvent*)))(TCtrlErrorEvent*)
  216. {
  217.   return pmf;
  218. }
  219.  
  220. #endif    // BI_PLAT_WIN32
  221.  
  222. #if defined(BI_NAMESPACE)
  223. } // namespace OWL
  224. #endif
  225.  
  226. //----------------------------------------------------------------------------
  227. // Event response table macros for ObjectConnections events
  228. //
  229.  
  230. //
  231. // Raw OC compound document family event
  232. //
  233. #define EV_OCEVENT(id, method)\
  234.   {WM_OCEVENT, id, (TAnyDispatcher)::I32_LPARAM_Dispatch,\
  235.    (TMyPMF)U32_VOIDFP_Sig(&TMyClass::method)}
  236.  
  237. //
  238. // App and app frame window events
  239. //
  240. #define EV_OC_APPINSMENUS\
  241.   {WM_OCEVENT, OC_APPINSMENUS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  242.    (TMyPMF)B_OC_MD_Sig(&TMyClass::EvOcAppInsMenus)}
  243.  
  244. #define EV_OC_APPMENUS\
  245.   {WM_OCEVENT, OC_APPMENUS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  246.    (TMyPMF)B_OC_MD_Sig(&TMyClass::EvOcAppMenus)}
  247.  
  248. #define EV_OC_APPPROCESSMSG\
  249.   {WM_OCEVENT, OC_APPPROCESSMSG, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  250.    (TMyPMF)B_MSG_Sig(&TMyClass::EvOcAppProcessMsg)}
  251.  
  252. #define EV_OC_APPFRAMERECT\
  253.   {WM_OCEVENT, OC_APPFRAMERECT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  254.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcAppFrameRect)}
  255.  
  256. #define EV_OC_APPBORDERSPACEREQ\
  257.   {WM_OCEVENT, OC_APPBORDERSPACEREQ, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  258.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcAppBorderSpaceReq)}
  259.  
  260. #define EV_OC_APPBORDERSPACESET\
  261.   {WM_OCEVENT, OC_APPBORDERSPACESET, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  262.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcAppBorderSpaceSet)}
  263.  
  264. #define EV_OC_APPSTATUSTEXT\
  265.   {WM_OCEVENT, OC_APPSTATUSTEXT, (TAnyDispatcher)::v_POINTER_Dispatch,\
  266.    (TMyPMF)v_CS_Sig(&TMyClass::EvOcAppStatusText)}
  267.  
  268. #define EV_OC_APPRESTOREUI\
  269.   {WM_OCEVENT, OC_APPRESTOREUI, (TAnyDispatcher)::v_Dispatch,\
  270.    (TMyPMF)v_Sig(&TMyClass::EvOcAppRestoreUI)}
  271.  
  272. #define EV_OC_APPDIALOGHELP\
  273.   {WM_OCEVENT, OC_APPDIALOGHELP, (TAnyDispatcher)::v_U_Dispatch,\
  274.    (TMyPMF)v_OC_AH_Sig(&TMyClass::EvOcAppDialogHelp)}
  275.  
  276. #define EV_OC_APPSHUTDOWN\
  277.   {WM_OCEVENT, OC_APPSHUTDOWN, (TAnyDispatcher)::B_Dispatch,\
  278.    (TMyPMF)B_Sig(&TMyClass::EvOcAppShutdown)}
  279.  
  280. //
  281. // View events
  282. //
  283. #define EV_OC_VIEWTITLE\
  284.   {WM_OCEVENT, OC_VIEWTITLE, (TAnyDispatcher)::I32_Dispatch,\
  285.    (TMyPMF)CS_Sig(&TMyClass::EvOcViewTitle)}
  286.  
  287. #define EV_OC_VIEWSETTITLE\
  288.   {WM_OCEVENT, OC_VIEWSETTITLE, (TAnyDispatcher)::v_POINTER_Dispatch,\
  289.    (TMyPMF)v_CS_Sig(&TMyClass::EvOcViewSetTitle)}
  290.  
  291. #define EV_OC_VIEWBORDERSPACEREQ\
  292.   {WM_OCEVENT, OC_VIEWBORDERSPACEREQ, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  293.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcViewBorderSpaceReq)}
  294.  
  295. #define EV_OC_VIEWBORDERSPACESET\
  296.   {WM_OCEVENT, OC_VIEWBORDERSPACESET, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  297.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcViewBorderSpaceSet)}
  298.  
  299. #define EV_OC_VIEWDROP\
  300.   {WM_OCEVENT, OC_VIEWDROP, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  301.    (TMyPMF)B_OC_DD_Sig(&TMyClass::EvOcViewDrop)}
  302.  
  303. #define EV_OC_VIEWDRAG\
  304.   {WM_OCEVENT, OC_VIEWDRAG, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  305.    (TMyPMF)B_OC_DD_Sig(&TMyClass::EvOcViewDrag)}
  306.  
  307. #define EV_OC_VIEWSCROLL\
  308.   {WM_OCEVENT, OC_VIEWSCROLL, (TAnyDispatcher)::B_I2_Dispatch,\
  309.    (TMyPMF)B_OC_VSCROLL_Sig(&TMyClass::EvOcViewScroll)}
  310.  
  311. #define EV_OC_VIEWPARTINVALID\
  312.   {WM_OCEVENT, OC_VIEWPARTINVALID, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  313.    (TMyPMF)B_OC_PCI_Sig(&TMyClass::EvOcViewPartInvalid)}
  314.  
  315. #define EV_OC_VIEWPAINT\
  316.   {WM_OCEVENT, OC_VIEWPAINT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  317.    (TMyPMF)B_OC_VP_Sig(&TMyClass::EvOcViewPaint)}
  318.  
  319. #define EV_OC_VIEWLOADPART\
  320.   {WM_OCEVENT, OC_VIEWLOADPART, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  321.    (TMyPMF)B_OC_VSP_Sig(&TMyClass::EvOcViewLoadPart)}
  322.  
  323. #define EV_OC_VIEWSAVEPART\
  324.   {WM_OCEVENT, OC_VIEWSAVEPART, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  325.    (TMyPMF)B_OC_VSP_Sig(&TMyClass::EvOcViewSavePart)}
  326.  
  327. #define EV_OC_VIEWCLOSE\
  328.   {WM_OCEVENT, OC_VIEWCLOSE, (TAnyDispatcher)::B_Dispatch,\
  329.    (TMyPMF)B_Sig(&TMyClass::EvOcViewClose)}
  330.  
  331. #define EV_OC_VIEWINSMENUS\
  332.   {WM_OCEVENT, OC_VIEWINSMENUS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  333.    (TMyPMF)B_OC_MD_Sig(&TMyClass::EvOcViewInsMenus)}
  334.  
  335. #define EV_OC_VIEWSHOWTOOLS\
  336.   {WM_OCEVENT, OC_VIEWSHOWTOOLS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  337.    (TMyPMF)B_OC_VTB_Sig(&TMyClass::EvOcViewShowTools)}
  338.  
  339. #define EV_OC_VIEWGETPALETTE\
  340.   {WM_OCEVENT, OC_VIEWGETPALETTE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  341.    (TMyPMF)B_PPALETTE_Sig(&TMyClass::EvOcViewGetPalette)}
  342.  
  343. #define EV_OC_VIEWCLIPDATA\
  344.   {WM_OCEVENT, OC_VIEWCLIPDATA, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  345.    (TMyPMF)B_OC_VCF_Sig(&TMyClass::EvOcViewClipData)}
  346.  
  347. #define EV_OC_VIEWSETDATA\
  348.   {WM_OCEVENT, OC_VIEWSETDATA, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  349.    (TMyPMF)B_OC_VCF_Sig(&TMyClass::EvOcViewSetData)}
  350.  
  351. #define EV_OC_VIEWPARTSIZE\
  352.   {WM_OCEVENT, OC_VIEWPARTSIZE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  353.    (TMyPMF)B_OC_PS_Sig(&TMyClass::EvOcViewPartSize)}
  354.  
  355. #define EV_OC_VIEWOPENDOC\
  356.   {WM_OCEVENT, OC_VIEWOPENDOC, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  357.    (TMyPMF)B_CS_Sig(&TMyClass::EvOcViewOpenDoc)}
  358.  
  359. #define EV_OC_VIEWATTACHWINDOW\
  360.   {WM_OCEVENT, OC_VIEWATTACHWINDOW, (TAnyDispatcher)::B_B_Dispatch,\
  361.    (TMyPMF)B_B_Sig(&TMyClass::EvOcViewAttachWindow)}
  362.  
  363. #define EV_OC_VIEWSETSCALE\
  364.   {WM_OCEVENT, OC_VIEWSETSCALE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  365.    (TMyPMF)B_OC_VSS_Sig(&TMyClass::EvOcViewSetScale)}
  366.  
  367. #define EV_OC_VIEWGETSCALE\
  368.   {WM_OCEVENT, OC_VIEWGETSCALE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  369.    (TMyPMF)B_OC_VSS_Sig(&TMyClass::EvOcViewGetScale)}
  370.  
  371. #define EV_OC_VIEWGETSITERECT\
  372.   {WM_OCEVENT, OC_VIEWGETSITERECT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  373.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcViewGetSiteRect)}
  374.  
  375. #define EV_OC_VIEWSETSITERECT\
  376.   {WM_OCEVENT, OC_VIEWSETSITERECT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  377.    (TMyPMF)B_RECT_Sig(&TMyClass::EvOcViewSetSiteRect)}
  378.  
  379. #define EV_OC_VIEWGETITEMNAME\
  380.   {WM_OCEVENT, OC_VIEWGETITEMNAME, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  381.    (TMyPMF)B_OC_IT_Sig(&TMyClass::EvOcViewGetItemName)}
  382.  
  383. #define EV_OC_VIEWSETLINK\
  384.   {WM_OCEVENT, OC_VIEWSETLINK, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  385.    (TMyPMF)B_OC_SL_Sig(&TMyClass::EvOcViewSetLink)}
  386.  
  387. #define EV_OC_VIEWBREAKLINK\
  388.   {WM_OCEVENT, OC_VIEWBREAKLINK, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  389.    (TMyPMF)B_OC_SL_Sig(&TMyClass::EvOcViewBreakLink)}
  390.  
  391. #define EV_OC_VIEWPARTACTIVATE\
  392.   {WM_OCEVENT, OC_VIEWPARTACTIVATE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  393.    (TMyPMF)B_OC_PA_Sig(&TMyClass::EvOcViewPartActivate)}
  394.  
  395. #define EV_OC_VIEWPASTEOBJECT\
  396.   {WM_OCEVENT, OC_VIEWPASTEOBJECT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  397.    (TMyPMF)B_OC_PO_Sig(&TMyClass::EvOcViewPasteObject)}
  398.  
  399. #define EV_OC_VIEWDOVERB\
  400.   {WM_OCEVENT, OC_VIEWDOVERB, (TAnyDispatcher)::B_WPARAM_Dispatch,\
  401.    (TMyPMF)B_U_Sig(&TMyClass::EvOcViewDoVerb)}
  402.  
  403.  
  404. // OCX Container event/dispatch macros
  405. //
  406. #if defined(BI_PLAT_WIN32)
  407.  
  408. // Standard Ambient properties - Get support
  409. //
  410. #define EV_OC_AMBIENT_GETBACKCOLOR\
  411.   {WM_OCEVENT, OC_AMBIENT_GETBACKCOLOR, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  412.    (TMyPMF)B_OC_PI32_Sig(&TMyClass::EvOcAmbientGetBackColor)}
  413.  
  414. #define EV_OC_AMBIENT_GETFORECOLOR\
  415.   {WM_OCEVENT, OC_AMBIENT_GETFORECOLOR, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  416.    (TMyPMF)B_OC_PI32_Sig(&TMyClass::EvOcAmbientGetForeColor)}
  417.  
  418. #define EV_OC_AMBIENT_GETLOCALEID\
  419.   {WM_OCEVENT, OC_AMBIENT_GETLOCALEID, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  420.    (TMyPMF)B_OC_PI32_Sig(&TMyClass::EvOcAmbientGetLocaleID)}
  421.  
  422. #define EV_OC_AMBIENT_GETTEXTALIGN\
  423.   {WM_OCEVENT, OC_AMBIENT_GETTEXTALIGN, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  424.    (TMyPMF)B_OC_PI16_Sig(&TMyClass::EvOcAmbientGetTextAlign)}
  425.  
  426. #define EV_OC_AMBIENT_GETMESSAGEREFLECT\
  427.   {WM_OCEVENT, OC_AMBIENT_GETMESSAGEREFLECT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  428.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetMessageReflect)}
  429.  
  430. #define EV_OC_AMBIENT_GETUSERMODE\
  431.   {WM_OCEVENT, OC_AMBIENT_GETUSERMODE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  432.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetUserMode)}
  433.  
  434. #define EV_OC_AMBIENT_GETUIDEAD\
  435.   {WM_OCEVENT, OC_AMBIENT_GETUIDEAD, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  436.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetUIDead)}
  437.  
  438. #define EV_OC_AMBIENT_GETSHOWGRABHANDLES\
  439.   {WM_OCEVENT, OC_AMBIENT_GETSHOWGRABHANDLES, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  440.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetShowGrabHandles)}
  441.  
  442. #define EV_OC_AMBIENT_GETSHOWHATCHING\
  443.   {WM_OCEVENT, OC_AMBIENT_GETSHOWHATCHING, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  444.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetShowHatching)}
  445.  
  446. #define EV_OC_AMBIENT_GETSUPPORTSMNEMONICS\
  447.   {WM_OCEVENT, OC_AMBIENT_GETSUPPORTSMNEMONICS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  448.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetSupportsMnemonics)}
  449.  
  450. #define EV_OC_AMBIENT_GETDISPLAYASDEFAULT\
  451.   {WM_OCEVENT, OC_AMBIENT_GETDISPLAYASDEFAULT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  452.    (TMyPMF)B_OC_PB_Sig(&TMyClass::EvOcAmbientGetDisplayAsDefault)}
  453.  
  454. #define EV_OC_AMBIENT_GETDISPLAYNAME\
  455.   {WM_OCEVENT, OC_AMBIENT_GETDISPLAYNAME, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  456.    (TMyPMF)B_OC_PPTS_Sig(&TMyClass::EvOcAmbientGetDisplayName)}
  457.  
  458. #define EV_OC_AMBIENT_GETSCALEUNITS\
  459.   {WM_OCEVENT, OC_AMBIENT_GETSCALEUNITS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  460.    (TMyPMF)B_OC_PPTS_Sig(&TMyClass::EvOcAmbientGetScaleUnits)}
  461.  
  462. #define EV_OC_AMBIENT_GETFONT\
  463.   {WM_OCEVENT, OC_AMBIENT_GETFONT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  464.    (TMyPMF)B_OC_PPID_Sig(&TMyClass::EvOcAmbientGetFont)}
  465.  
  466.  
  467. // Standard Ambient properties - Set support
  468. //
  469. #define EV_OC_AMBIENT_SETBACKCOLOR\
  470.   {WM_OCEVENT, OC_AMBIENT_SETBACKCOLOR, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  471.    (TMyPMF)B_I32_Sig(&TMyClass::EvOcAmbientSetBackColor)}
  472.  
  473. #define EV_OC_AMBIENT_SETFORECOLOR\
  474.   {WM_OCEVENT, OC_AMBIENT_SETFORECOLOR, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  475.    (TMyPMF)B_I32_Sig(&TMyClass::EvOcAmbientSetForeColor)}
  476.  
  477. #define EV_OC_AMBIENT_SETLOCALEID\
  478.   {WM_OCEVENT, OC_AMBIENT_SETLOCALEID, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  479.    (TMyPMF)B_I32_Sig(&TMyClass::EvOcAmbientSetLocaleID)}
  480.  
  481. #define EV_OC_AMBIENT_SETTEXTALIGN\
  482.   {WM_OCEVENT, OC_AMBIENT_SETTEXTALIGN, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  483.    (TMyPMF)B_OC_I16_Sig(&TMyClass::EvOcAmbientSetTextAlign)}
  484.  
  485. #define EV_OC_AMBIENT_SETMESSAGEREFLECT\
  486.   {WM_OCEVENT, OC_AMBIENT_SETMESSAGEREFLECT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  487.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetMessageReflect)}
  488.  
  489. #define EV_OC_AMBIENT_SETUSERMODE\
  490.   {WM_OCEVENT, OC_AMBIENT_SETUSERMODE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  491.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetUserMode)}
  492.  
  493. #define EV_OC_AMBIENT_SETUIDEAD\
  494.   {WM_OCEVENT, OC_AMBIENT_SETUIDEAD, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  495.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetUIDead)}
  496.  
  497. #define EV_OC_AMBIENT_SETSHOWGRABHANDLES\
  498.   {WM_OCEVENT, OC_AMBIENT_SETSHOWGRABHANDLES, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  499.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetShowGrabHandles)}
  500.  
  501. #define EV_OC_AMBIENT_SETSHOWHATCHING\
  502.   {WM_OCEVENT, OC_AMBIENT_SETSHOWHATCHING, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  503.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetShowHatching)}
  504.  
  505. #define EV_OC_AMBIENT_SETDISPLAYASDEFAULT\
  506.   {WM_OCEVENT, OC_AMBIENT_SETDISPLAYASDEFAULT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  507.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetDisplayAsDefault)}
  508.  
  509. #define EV_OC_AMBIENT_SETSUPPORTSMNEMONICS\
  510.   {WM_OCEVENT, OC_AMBIENT_SETSUPPORTSMNEMONICS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  511.    (TMyPMF)B_B_Sig(&TMyClass::EvOcAmbientSetSupportsMnemonics)}
  512.  
  513. #define EV_OC_AMBIENT_SETDISPLAYNAME\
  514.   {WM_OCEVENT, OC_AMBIENT_SETDISPLAYNAME, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  515.    (TMyPMF)B_OC_PTS_Sig(&TMyClass::EvOcAmbientSetDisplayName)}
  516.  
  517. #define EV_OC_AMBIENT_SETSCALEUNITS\
  518.   {WM_OCEVENT, OC_AMBIENT_SETSCALEUNITS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  519.    (TMyPMF)B_OC_PTS_Sig(&TMyClass::EvOcAmbientSetScaleUnits)}
  520.  
  521. #define EV_OC_AMBIENT_SETFONT\
  522.   {WM_OCEVENT, OC_AMBIENT_SETFONT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  523.    (TMyPMF)B_OC_PID_Sig(&TMyClass::EvOcAmbientSetFont)}
  524.  
  525.  
  526. // Standard Ctrl Events
  527. //
  528. #define EV_OC_CTRLEVENT_CLICK\
  529.   {WM_OCEVENT, OC_CTRLEVENT_CLICK, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  530.    (TMyPMF)B_OC_PE_Sig(&TMyClass::EvOcCtrlClick)}
  531.  
  532. #define EV_OC_CTRLEVENT_DBLCLICK\
  533.   {WM_OCEVENT, OC_CTRLEVENT_DBLCLICK, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  534.    (TMyPMF)B_OC_PE_Sig(&TMyClass::EvOcCtrlDblClick)}
  535.  
  536. #define EV_OC_CTRLEVENT_MOUSEDOWN\
  537.   {WM_OCEVENT, OC_CTRLEVENT_MOUSEDOWN, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  538.    (TMyPMF)B_OC_PME_Sig(&TMyClass::EvOcCtrlMouseDown)}
  539.  
  540. #define EV_OC_CTRLEVENT_MOUSEUP\
  541.   {WM_OCEVENT, OC_CTRLEVENT_MOUSEUP, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  542.    (TMyPMF)B_OC_PME_Sig(&TMyClass::EvOcCtrlMouseUp)}
  543.  
  544. #define EV_OC_CTRLEVENT_MOUSEMOVE\
  545.   {WM_OCEVENT, OC_CTRLEVENT_MOUSEMOVE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  546.    (TMyPMF)B_OC_PME_Sig(&TMyClass::EvOcCtrlMouseMove)}
  547.  
  548. #define EV_OC_CTRLEVENT_KEYDOWN\
  549.   {WM_OCEVENT, OC_CTRLEVENT_KEYDOWN, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  550.    (TMyPMF)B_OC_PKE_Sig(&TMyClass::EvOcCtrlKeyDown)}
  551.  
  552. #define EV_OC_CTRLEVENT_KEYUP\
  553.   {WM_OCEVENT, OC_CTRLEVENT_KEYUP, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  554.    (TMyPMF)B_OC_PKE_Sig(&TMyClass::EvOcCtrlKeyUp)}
  555.  
  556. #define EV_OC_CTRLEVENT_ERROREVENT\
  557.   {WM_OCEVENT, OC_CTRLEVENT_ERROREVENT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  558.    (TMyPMF)B_OC_PEE_Sig(&TMyClass::EvOcCtrlErrorEvent)}
  559.  
  560. #define EV_OC_CTRLEVENT_FOCUS\
  561.   {WM_OCEVENT, OC_CTRLEVENT_FOCUS, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  562.    (TMyPMF)B_OC_PFE_Sig(&TMyClass::EvOcCtrlFocus)}
  563.  
  564. #define EV_OC_CTRLEVENT_PROPERTYCHANGE\
  565.   {WM_OCEVENT, OC_CTRLEVENT_PROPERTYCHANGE, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  566.    (TMyPMF)B_OC_PPE_Sig(&TMyClass::EvOcCtrlPropertyChange)}
  567.  
  568. #define EV_OC_CTRLEVENT_PROPERTYREQUESTEDIT\
  569.   {WM_OCEVENT, OC_CTRLEVENT_PROPERTYREQUESTEDIT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  570.    (TMyPMF)B_OC_PPE_Sig(&TMyClass::EvOcCtrlPropertyRequestEdit)}
  571.  
  572. #define EV_OC_CTRLEVENT_CUSTOMEVENT\
  573.   {WM_OCEVENT, OC_CTRLEVENT_CUSTOMEVENT, (TAnyDispatcher)::B_LPARAM_Dispatch,\
  574.    (TMyPMF)B_OC_PCE_Sig(&TMyClass::EvOcCtrlCustomEvent)}
  575.  
  576. #endif    //  BI_PLAT_WIN32
  577. #endif    //  OWL_OCFEVENT_H
  578.